This disclosure relates to computer-aided searching, and in particular to networked systems that match queries to sets of documents and return a list of matching documents. It is particularly suited for Internet sites that match queries submitted from web browsers to product data stored on one or more servers. Accordingly, to illustrate the principles of the invention, it will be described in terms of an Internet-based shopping service. Those skilled in the art will appreciate that computer-aided searching has many applications and that improvements inspired by one application have broad utility in diverse applications that employ search technology.
Computers, networks, and the Internet have become a standard part of social and business infrastructure. Business now depends on the Internet just as it depends on telephone service. Many companies now sell goods and services online—sometimes from their own web sites; sometimes from intermediate sites similar to retail stores; and sometimes from high-level shopping sites that match shopper requests with product information. The use of computers allows an online shopping service to offer the buyer and the seller advantages that would be impossible for traditional retailers.
Many of these advantages derive from the combination of data storage technology and search engine technology. The shopping service or other service provider maintains a large library of information about products, services, and special offers. The shopping service also maintains a front-end web site so that shoppers can seek and see information from the underlying electronic library. The large volume of data almost obligates the use of a search engine to pinpoint relevant data. Typically, the web site provides a means for the shopper to indicate their area of interest, for example, by entering one or more keywords, attributes, or restrictions from a web page. The shopper's web browser sends the text or other data over the Internet or other network to the shopping service, where a search engine evaluates the request, compares it an index of documents to identify relevant items, and ranks the results by some measure of relevance. After formatting the results for display and adding text, pictures, scripts, and other data, the shopping service sends the results back over the network to the shopper's web browser. The shopping service can add value to the raw data, for example, by collecting data from many sellers and by supplying product evaluations, merchant evaluations, comparative pricing, and so on.
The practicality of these systems for shoppers, sellers, and the shopping service depends on, among other things, the speed of the system, the cost of the system, and the accuracy of the results. The popularity of the Internet as a meeting place for buyers and sellers means the databases of goods, services, and offers can become enormous—and so can the volume of requests, processing, and results. Unfortunately, each request is an unpredictable event, so the search engine must process incoming requests on the fly, in real time. And it must return results almost instantly, so that each shopper can interact with the site spontaneously. On top of that, it must return an accurate, appropriate reply to an imprecise, unstructured request.
Some search engines require the search originator to use an exact, technical syntax such as Boolean syntax to form each request. Such search engines allow a skilled searcher to formulate extremely specific requests and obtain extremely specific search results. Such search engines can be difficult for unskilled searchers to understand and operate, however—and even skilled searchers can fail to find salient results as a result of minor technical flaws in forming requests. Such search engines are relatively simple to implement because searcher assumes the burden of deducing and expressing the search logic, and because each request closely resembles the corresponding query executed within the search engine.
Other search engines permit natural-language or free-form requests. And such search engines often permit the use of short-cut indicators or prompts such as check boxes, drop-down lists, or other user-interface devices that indicate keywords, restrictions, or other attributes transmitted as elements of a search request. Such search engines are generally easier to use, especially for the unskilled searcher. Such search engines are generally more difficult to implement, however, because the search engine must perform sophisticated processing to derive logical queries from requests.
The ongoing expansion of online business creates an ongoing need to improve the systems that fulfill requests for information. Some advances reduce the response time of the data source, search engine, or both; for example, by reducing the computational cost of the components that evaluate and fulfill requests. Other advances increase the accuracy of the data returned, for example, by refining the methods used to select, rank, and format it. Gains in speed often enable gains in quality, since time saved in one functional area can be put to good use in another.